昨天完成了全場緩速技能,今天決定替兩個技能加入冷卻限制。
因為目前技能只要擊殺數足夠就能使用,如果玩家不小心連續點擊,可能會在短時間內重複消耗擊殺數。因此今天加入冷卻機制,避免玩家誤觸。
目前設定為:
首先修改原本的SkillManager,新增兩個技能的狀態判斷。清場技能使用後會進入1秒冷卻,緩速技能則是在5秒效果結束前禁止再次施放。
以下只列出這次新增或修改的部分:
// 技能冷卻與作用狀態
private bool isClearScreenActive = false;
private bool isSlowDownActive = false;
// 【技能一:全螢幕清場】
public void TriggerClearScreenSkill()
{
if (isClearScreenActive)
{
Debug.Log("清場技能冷卻中,請稍候!");
return;
}
if (ScoreManager.Instance != null && ScoreManager.Instance.UseSkill1())
{
isClearScreenActive = true;
Target[] allTargets = FindObjectsOfType<Target>();
foreach (Target target in allTargets)
{
if (target != null)
{
target.ForceKillBySkill();
}
}
StartCoroutine(ClearScreenCooldownRoutine());
}
else
{
Debug.Log("擊殺數不足 50,無法施放清場技能!");
}
}
private IEnumerator ClearScreenCooldownRoutine()
{
yield return new WaitForSeconds(1.0f);
isClearScreenActive = false;
}
// 【技能二:全場緩速】
public void TriggerSlowDownSkill()
{
if (isSlowDownActive)
{
Debug.Log("緩速技能仍在作用中!");
return;
}
if (ScoreManager.Instance != null && ScoreManager.Instance.UseSkill2())
{
isSlowDownActive = true;
StartCoroutine(SlowDownRoutine());
}
else
{
Debug.Log("擊殺數不足 150,無法施放緩速技能!");
}
}
另外,在原本的SlowDownRoutine()結束、恢復殭屍速度後,加入:
isSlowDownActive = false;
這樣就能避免技能尚未結束時再次扣除擊殺數。
今天主要完成了以下幾個部分:
目前兩個技能都已經加入使用限制,能減少玩家連續點擊造成的誤觸問題。
接下來打算在遊戲開始時加入技能介紹,讓玩家知道每個技能的效果、消耗的擊殺數與冷卻時間,避免玩家不知道技能的使用方式,以及結算畫面。